package behaviour.visitor;

/**
 * 访问者模式
 * 使用一个访问者类 元素的执行算法随着访问者改变而改变
 * <p>
 * 意图：主要将数据结构与数据操作分离。
 * 主要解决：稳定的数据结构和易变的操作耦合问题。
 * <p>
 * 何时使用：需要对一个对象结构中的对象进行很多不同的并且不相关的操作，
 * 而需要避免让这些操作"污染"这些对象的类，使用访问者模式将这些封装到类中。
 * <p>
 * 如何解决：在被访问的类里面加一个对外提供接待访问者的接口。
 *
 * @author yeyangtao created at 2020/7/7 17:47
 */
public class VisitorDemo {
    public static void main(String[] args) {
        Computer computer = new Computer();
        computer.accept(new ComputerPartDisplayVisitor());
    }
}
